import GCJ_CLASS_TYPE = require('./../../common/GCJ_CLASS_TYPE');
import GlobalData = require('./../../z/GlobalData');

export  = Serializer;

/**
 *
 * @author 
 *
 */
class Serializer{
     

        
    public ct = GCJ_CLASS_TYPE.CLASS_TYPE_None;
        
    public constructor(g?) {
        if(g){
            this.globalData=g;
        }
    }
    
    // 从json对象(注意不是json字符串)中解析
    // 参数：self,true表示只拷贝自身数据，而不拷贝子的数据
    public fromJson(jsonObj,versionId,self?) { 
        if(jsonObj.hasOwnProperty('ct')){
            this.ct=jsonObj.ct;    
        }        
    }
    // 转成json字符串
    public toJson():string {
        var ret:string = "{";
        ret += ('"ct":' + this.ct);
        ret += "}";
        return ret;
    }
    
    /**
    * 将对象添加Egret显示容器中
    * @param doc  显示容器
    * @param info  对象结构，属性如下：
    *                  docOriginX  文档的新原点 在原始原点的 坐标
    *                  docOriginY  文档的新原点 在原始原点的 坐标
    *                  w   文档宽度
    *                  h   文档高度
    */
    public addToEgretContainer  (doc, info) {
        
    }
    /**
    * 复制自身
    */
    public deepCloneObject():any {

    }
    
    
    //SJG_MARK_APPEND--------------------

    //    为了兼容nodejs，为common和内核中引用了GlobalData的元素添加此函数
    public globalData;//= GlobalData;// 在egrewing中默认获取全局变量，在nodejs中每个文档有自己的GlobalData
    public setGlobalData(g){
        this.globalData=g;
    }
    public getGlobalData(){ // 返回的是 GlobalData
        return this.globalData;
    }


}//SJG_MARK_END-------------------------
    
